﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using ServiceGerenciador.Model;

public partial class paginas_Funcionarios : System.Web.UI.Page
{
    protected int ModelId
    {
        get
        {
            if (Request.QueryString["Id"] != null)
            {
                return Convert.ToInt32(Request.QueryString["Id"]);
            }
            else
            {
                return 0;
            }
        }
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        Initialize();
    }

    private void Initialize()
    {
        if (!IsPostBack)
        {
            if (this.ModelId > 0)
            {
                Funcionario funcionario = new Funcionario();
                funcionario = Funcionario.Find(ModelId);

                ddlPessoa.SelectedValue = Convert.ToString(funcionario.Pessoa.Id);                
                txt_admissao.Text = Convert.ToString(funcionario.dataAdmissao);
                txt_demissao.Text = Convert.ToString(funcionario.dataDemissao);
                txt_comissao.Text = Convert.ToString(funcionario.comissao);
                txt_horarioini.Text = String.Format("{0:HH:mm}", funcionario.horarioini);
                    //<%= String.Format("{0:dd/MM/yyyy HH:mm}",this.Session["UltimoLogin"]) %>
                txt_horariofim.Text = String.Format("{0:HH:mm}", funcionario.horariofim);
                txt_horarioinit.Text = String.Format("{0:HH:mm}", funcionario.horarioini2);
                txt_horariofimt.Text = String.Format("{0:HH:mm}", funcionario.horariofim2);
            }
        }
    }

    protected void btnSalvar_Click(object sender, EventArgs e)
    {
        if (Page.IsValid)
        {
            if (ModelId > 0)
            {
                Funcionario funcionario = new Funcionario();
                funcionario = Funcionario.Find(ModelId);                
                DateTime? v_demissao;
                v_demissao = null;

                funcionario.Pessoa = Person.Find(Convert.ToInt32(ddlPessoa.SelectedValue));
                funcionario.dataAdmissao = Convert.ToDateTime(txt_admissao.Text);
                if (txt_demissao.Text == "__/__/____")
                {
                 funcionario.dataDemissao = v_demissao;
                }
                else
                {
                    funcionario.dataDemissao = Convert.ToDateTime(txt_demissao.Text);
                } 
                
                funcionario.comissao = Convert.ToDecimal(txt_comissao.Text);
                funcionario.horarioini = Convert.ToDateTime(txt_horarioini.Text);
                funcionario.horariofim = Convert.ToDateTime(txt_horariofim.Text);
                
                funcionario.horarioini2 = Convert.ToDateTime(txt_horarioinit.Text);
                funcionario.horariofim2 = Convert.ToDateTime(txt_horariofimt.Text);

                funcionario.Update();

                ApplicationEnvironment.Instance.Flash["Notice"] = "Colaborador atualizado com sucesso!";

                Response.Redirect("Funcionarios.aspx");
            }
            else
            {
                Funcionario funcionario = null;
                funcionario = new Funcionario();
                DateTime? v_demissao;
                v_demissao = null;

                funcionario.Pessoa = Person.Find(Convert.ToInt32(ddlPessoa.SelectedValue));
                funcionario.dataAdmissao = Convert.ToDateTime(txt_admissao.Text);
                if (txt_demissao.Text == "__/__/____")
                {
                    funcionario.dataDemissao = v_demissao;
                }
                else
                {
                    funcionario.dataDemissao = Convert.ToDateTime(txt_demissao.Text);
                } 
                
                //funcionario.dataDemissao = Convert.ToDateTime(txt_demissao.Text);                
               // funcionario.dataDemissao = Convert.ToDateTime(txt_demissao.Text);
                funcionario.comissao = Convert.ToDecimal(txt_comissao.Text);
                funcionario.horarioini = Convert.ToDateTime(txt_horarioini.Text);
                funcionario.horariofim = Convert.ToDateTime(txt_horariofim.Text);
                funcionario.horarioini2 = Convert.ToDateTime(txt_horarioinit.Text);
                funcionario.horariofim2 = Convert.ToDateTime(txt_horariofimt.Text);
                funcionario.Save();

                ApplicationEnvironment.Instance.Flash["Notice"] = "Colaborador cadastrado com sucesso!";

                Response.Redirect("Funcionarios.aspx");
            }
        }
    }
    protected void btnCancelar_Click(object sender, EventArgs e)
    {
        Response.Redirect("Funcionarios.aspx");
    }
    protected void btnExcluir_Click(object sender, EventArgs e)
    {
        Funcionario funcionario = Funcionario.Find(ModelId);
        funcionario.Delete();

        ApplicationEnvironment.Instance.Flash["Notice"] = "Colaborador excluído com sucesso!";

        Response.Redirect("Funcionarios.aspx");
    }
}
